package join;

import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableComparator;

/*
 * 实现Group分组
 * shuffle的group过程默认的是使用的key(BeanKey)的compareTo()方法
 * 刚才我们添加的自定义的Key没有办法将具有相同AddressNo的地址和人员放到同一个group中(因为从compareTo()方法中可以看出他们是不相等的)
 * 我们需要的就是自己定义一个groupComparer就可以
 * 实现比较器
 */
public class PKFKCompartor extends WritableComparator {

    protected PKFKCompartor() {
        super(BeanKey.class, true);
    }

    //两个BeanKey进行比较排序
    @Override
    public int compare(WritableComparable a, WritableComparable b) {
        BeanKey a1 = (BeanKey) a;
        BeanKey b1 = (BeanKey) b;
        if (a1.getAddreNo() == b1.getAddreNo()) {
            return 0;
        } else {
            return a1.getAddreNo() > b1.getAddreNo() ? 1 : -1;
        }
    }
}

